package com.tz.crm.service;


import com.tz.crm.entity.Department;
import com.tz.crm.entity.User;
import com.tz.crm.utils.Pager;

import java.util.List;

/**
 * DepartmentService 接口
 * 查找部门信息以及员工信息
 */
public interface DepartmentService extends BaseService<Department, String> {

    /**
     * 根据名称查找部门
     *
     * @param name 部门名
     * @return Department
     */
    Department get(String name);

    /**
     * 根据部门名称查找部门员工
     *
     * @param name  部门名
     * @param pager Pager
     * @return User List
     */
    List<User> getByDepartmentName(String name, Pager pager);

    /**
     * 根据部门id查找部门
     *
     * @param id 部门id
     * @return Department
     */
    Department getById(String id);

    /**
     * 根据父部门名字查找部门(含子部门)
     *
     * @param parentName parentName
     * @return Department
     */
    Department getDeptWithChildren(String parentName);

    /**
     * 查询根部门(含子部门)
     *
     * @return Department
     */
    Department getRootWithChildren();

}
